﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Forms;
using dbcntn;

namespace Campus.Main
{
    class Helper
    {
        public static string ConnectionString { get { return _connectionString; }
            set { _connectionString = _connectionString; }
        }
        public static string _connectionString = "server=ef.manas.kg;User Id=admin;Persist Security Info=True;database=Ogrenci2006_dbo;password=password";
        //public static string _connectionString = "server=localhost;User Id=root;Persist Security Info=True;database=ogrenci2006_dbo;password=123456";
        public static string Priv="";
        public static string SId;
        public static Dictionary<int ,string> Data = new Dictionary<int, string>
                          {
                              {1, "Окуу жылын "},
                              {2, "Студенттик номерин "},
                              {3, "Атын "},
                              {4, "Фамилиясын "},
                              {5, "Жынысын "},
                              {6, "Туулган кунун "},
                              {7, "Туулган жерин "},
                              {8, "Уй телефонун "},
                              {9, "Уй адресин "},
                              {10, "Олкосун "},
                              {11, "Улутун "},
                              {12, "Пасспорттун "},
                              {13, "Майыптыгын "},
                              {14, "Курсун "},
                              {15, "Болумун "},
                              {16, "Орточо баасын "},
                              {17, "Прописка болгон жерин "},
                              {18, "Атасынын атын "},
                              {19, "Атасынын фамилиясын "},
                              {20, "Атасынын кесибин "},
                              {21, "Атасынын иш адрессин "},
                              {22, "Атасынын иш телефон номерин "},
                              {23, "Атасынын айлык акысын "},
                              {24, "Атасынын айлык акысынын валютасын "},
                              {25, "Атасынын майыптыгын"},
                              {26, "Атасынын абалы "},
                              {27, "Апасынын атын "},
                              {28, "Апасынын фамилиясын"},
                              {29, "Апасынын кесибин "},
                              {30, "Апасынын иш адресин "},
                              {31, "Апасынын иш телефон номерин "},
                              {32, "Апасынын айлык акысы "},
                              {33, "Апасынын айлык акысынын валютасын"},
                              {34, "Апасынын майыптыгын"},
                              {35, "Апасынын абалын "},
                              {36, "Ата-эне абалын"},
                              {37, "Университетте окуган бир туугандалдык санын "},
                              {38, "Катто датасы"},
                              {39,"Хроникалык оруу"},
                              {40,"Хроникалык оруунун туру"},
                              {41,"Аллергия"},
                              {42,"Аллергиянын туру"},
                              {43,"Кандын группасы"},
                              {44,"Керебет номери"},
                              {45,"Кируу тарыхы"},
                              {46,"Кетуу тарыхы"},
                              {47,"Тамеки чегуу"},
                              {48,"Жатаканадан чыгуу себеби"},
                              {49,"Справка"},
                              {50,"Балл"},
                              {51,"Досье номери"},
                          };
        Helper()
        {
            if (ConnectionString.Length!=0)
            {
                ConnectionString = ConnectionString;
            }
        }
        public static void AddItemForComboBox(ComboBox aComboBox, string tableName, ConnectionToDb aToDb)
        {
            for (int i = 1; i <= aToDb.MaxId(tableName); i++)
            {
                aComboBox.Items.Add(aToDb.SelectTable(tableName, i));
            }
        }
        public static void AddItemForComboBox(ComboBox aComboBox, string tableName, string tableRow, ConnectionToDb aToDb)
        {
            for (int i = 1; i <= aToDb.MaxId(tableName); i++)
            {
                aComboBox.Items.Add(aToDb.SelectTable(tableName, tableRow, i));
            }
        }
        public static void AddItemForComboBox(ComboBox aComboBox, string tableName, string tableRow1,string tableRow2,int i, ConnectionToDb aToDb)
        {
            var set = aToDb.SelectTable(tableName, tableRow1, tableRow2, i);
            aComboBox.Items.Clear();
            foreach (var result in set)
            {
                aComboBox.Items.Add(result);
            }
        }
        
        public static string Error(int kod)
        {
            return Data[kod];
        }

        public static DateTime ChangeDateFormat(string date)
        {
            int year, month, day;
            year = Int32.Parse(date.Substring(0, date.IndexOf('-')));
            date = date.Remove(0, date.IndexOf('-') + 1);
            month = Int32.Parse(date.Substring(0, date.IndexOf('-')));
            date = date.Remove(0, date.IndexOf('-') + 1);
            day = Int32.Parse(date);
            DateTime t = new DateTime(year, month, day);
            return t;
        }
        public static DateTime ChangeDateFormat1(string date,char ch)
        {
            int year, month, day;
            day = Int32.Parse(date.Substring(0, date.IndexOf(ch)));
            date = date.Remove(0, date.IndexOf(ch) + 1);
            month = Int32.Parse(date.Substring(0, date.IndexOf(ch)));
            date = date.Remove(0, date.IndexOf(ch) + 1);
            year = Int32.Parse(date);
            DateTime t = new DateTime(year, month, day);
            return t;
        }
        private static FileStream _fs;
        private static List<string> config;

        private static void CreateOrcheckFolder(string path)
        {
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
        }

        public static string PrintConfig()
        {
            config = ReadConfig();
            return config[0];
        }
        public static void DeleteDate(int index)
        {
            config.RemoveAt(index);
            _fs = new FileStream("Setting\\date_config.ini", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
            StreamWriter sw = new StreamWriter(_fs, Encoding.UTF8);
            foreach (var t in config)
            {
                sw.WriteLine(t);
            }
            sw.Close();
            _fs.Close();
            _fs.Dispose();
        }
        private static List<string> ReadConfig()
        {
            CreateOrcheckFolder("Setting");
            var temp = new List<string>();
            _fs = new FileStream("Setting\\date_config.ini", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
            var sr = new StreamReader(_fs, Encoding.UTF8);
            string line;
            do
            {
                line = sr.ReadLine();
                temp.Add(line);
            } while (line != null);
            sr.Close();
            _fs.Close();
            _fs.Dispose();
            return temp;
        }
    }
}
